]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
calendar: Update events on changes
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 9 Apr 2020 10:50:39 +0000 (12:50 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Sun, 26 Apr 2020 16:20:49 +0000 (16:20 +0000)
We track messages so that we can account for just added and removed
events instead of having to rebuild the entire list, however it's
also possible that the time or summary of an existing event changed.

Account for that by updating existing messages in-place.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1192

js/ui/calendar.js

index 286aac1e10ee9bd966a98a86eb10cb7210ff3ff6..f38544c8bd76162ebd51a3532c7e2da9bc2c8489 100644 (file)
@@ -701,12 +701,11 @@ var Calendar = GObject.registerClass({
 var EventMessage = GObject.registerClass(
 class EventMessage extends MessageList.Message {
     _init(event, date) {
-        super._init('', event.summary);
+        super._init('', '');
 
-        this._event = event;
         this._date = date;
 
-        this.setTitle(this._formatEventTime());
+        this.update(event);
 
         this._icon = new St.Icon({ icon_name: 'x-office-calendar-symbolic' });
         this.setIcon(this._icon);
@@ -718,6 +717,13 @@ class EventMessage extends MessageList.Message {
         super.vfunc_style_changed();
     }
 
+    update(event) {
+        this._event = event;
+
+        this.setTitle(this._formatEventTime());
+        this.setBody(event.summary);
+    }
+
     _formatEventTime() {
         let periodBegin = _getBeginningOfDay(this._date);
         let periodEnd = _getEndOfDay(this._date);
@@ -901,6 +907,7 @@ class EventsSection extends MessageList.MessageListSection {
                 this._messageById.set(event.id, message);
                 this.addMessage(message, false);
             } else {
+                message.update(event);
                 this.moveMessage(message, i, false);
             }
         }